package com.foxnicweb.app.domain.patent;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;
import com.github.foxnic.api.model.CompositeParameter;
import javax.persistence.Transient;
import com.github.foxnic.commons.bean.BeanUtil;
import com.github.foxnic.dao.entity.EntityContext;
import com.github.foxnic.dao.entity.Entity;
import java.util.Map;
import com.foxnicweb.app.domain.patent.meta.PatentVOMeta;
import com.github.foxnic.commons.lang.DataParser;
import java.util.Date;
import com.github.foxnic.sql.data.ExprRcd;



/**
 * 专利案VO类型
 * <p>专利案 , 数据表 pat_patent 的通用VO类型</p>
 * @author 李方捷 , leefangjie@qq.com
 * @since 2023-04-19 10:25:34
 * @sign 215630902E7E6B2D6E20530C7C91548B
 * 此文件由工具自动生成，请勿修改。若表结构或配置发生变动，请使用工具重新生成。
*/

@ApiModel(description = "专利案VO类型 ; 专利案 , 数据表 pat_patent 的通用VO类型" , parent = Patent.class)
public class PatentVO extends Patent {

	private static final long serialVersionUID = 1L;
	
	/**
	 * 页码
	*/
	@ApiModelProperty(required = false,value="页码" , notes = "")
	private Integer pageIndex;
	
	/**
	 * 分页大小
	*/
	@ApiModelProperty(required = false,value="分页大小" , notes = "")
	private Integer pageSize;
	
	/**
	 * 搜索字段
	*/
	@ApiModelProperty(required = false,value="搜索字段" , notes = "")
	private String searchField;
	
	/**
	 * 模糊搜索字段
	*/
	@ApiModelProperty(required = false,value="模糊搜索字段" , notes = "")
	private String fuzzyField;
	
	/**
	 * 搜索的值
	*/
	@ApiModelProperty(required = false,value="搜索的值" , notes = "")
	private String searchValue;
	
	/**
	 * 已修改字段
	*/
	@ApiModelProperty(required = false,value="已修改字段" , notes = "")
	private List<String> dirtyFields;
	
	/**
	 * 排序字段
	*/
	@ApiModelProperty(required = false,value="排序字段" , notes = "")
	private String sortField;
	
	/**
	 * 排序方式
	*/
	@ApiModelProperty(required = false,value="排序方式" , notes = "")
	private String sortType;
	
	/**
	 * 数据来源：前端指定不同的来源，后端可按来源执行不同的逻辑
	*/
	@ApiModelProperty(required = false,value="数据来源" , notes = "前端指定不同的来源，后端可按来源执行不同的逻辑")
	private String dataOrigin;
	
	/**
	 * 查询逻辑：默认and，可指定 or 
	*/
	@ApiModelProperty(required = false,value="查询逻辑" , notes = "默认and，可指定 or ")
	private String queryLogic;
	
	/**
	 * 请求动作：前端指定不同的Action，后端可Action执行不同的逻辑
	*/
	@ApiModelProperty(required = false,value="请求动作" , notes = "前端指定不同的Action，后端可Action执行不同的逻辑")
	private String requestAction;
	
	/**
	 * 主键清单：用于接收批量主键参数
	*/
	@ApiModelProperty(required = false,value="主键清单" , notes = "用于接收批量主键参数")
	private List<Long> ids;
	
	/**
	 * 获得 页码<br>
	 * @return 页码
	*/
	public Integer getPageIndex() {
		return pageIndex;
	}
	
	/**
	 * 设置 页码
	 * @param pageIndex 页码
	 * @return 当前对象
	*/
	public PatentVO setPageIndex(Integer pageIndex) {
		this.pageIndex=pageIndex;
		return this;
	}
	
	/**
	 * 获得 分页大小<br>
	 * @return 分页大小
	*/
	public Integer getPageSize() {
		return pageSize;
	}
	
	/**
	 * 设置 分页大小
	 * @param pageSize 分页大小
	 * @return 当前对象
	*/
	public PatentVO setPageSize(Integer pageSize) {
		this.pageSize=pageSize;
		return this;
	}
	
	/**
	 * 获得 搜索字段<br>
	 * @return 搜索字段
	*/
	public String getSearchField() {
		return searchField;
	}
	
	/**
	 * 设置 搜索字段
	 * @param searchField 搜索字段
	 * @return 当前对象
	*/
	public PatentVO setSearchField(String searchField) {
		this.searchField=searchField;
		return this;
	}
	
	/**
	 * 获得 模糊搜索字段<br>
	 * @return 模糊搜索字段
	*/
	public String getFuzzyField() {
		return fuzzyField;
	}
	
	/**
	 * 设置 模糊搜索字段
	 * @param fuzzyField 模糊搜索字段
	 * @return 当前对象
	*/
	public PatentVO setFuzzyField(String fuzzyField) {
		this.fuzzyField=fuzzyField;
		return this;
	}
	
	/**
	 * 获得 搜索的值<br>
	 * @return 搜索的值
	*/
	public String getSearchValue() {
		return searchValue;
	}
	
	/**
	 * 设置 搜索的值
	 * @param searchValue 搜索的值
	 * @return 当前对象
	*/
	public PatentVO setSearchValue(String searchValue) {
		this.searchValue=searchValue;
		return this;
	}
	
	/**
	 * 获得 已修改字段<br>
	 * @return 已修改字段
	*/
	public List<String> getDirtyFields() {
		return dirtyFields;
	}
	
	/**
	 * 设置 已修改字段
	 * @param dirtyFields 已修改字段
	 * @return 当前对象
	*/
	public PatentVO setDirtyFields(List<String> dirtyFields) {
		this.dirtyFields=dirtyFields;
		return this;
	}
	
	/**
	 * 添加 已修改字段
	 * @param dirtyField 已修改字段
	 * @return 当前对象
	*/
	public PatentVO addDirtyField(String... dirtyField) {
		if(this.dirtyFields==null) dirtyFields=new ArrayList<>();
		this.dirtyFields.addAll(Arrays.asList(dirtyField));
		return this;
	}
	
	/**
	 * 获得 排序字段<br>
	 * @return 排序字段
	*/
	public String getSortField() {
		return sortField;
	}
	
	/**
	 * 设置 排序字段
	 * @param sortField 排序字段
	 * @return 当前对象
	*/
	public PatentVO setSortField(String sortField) {
		this.sortField=sortField;
		return this;
	}
	
	/**
	 * 获得 排序方式<br>
	 * @return 排序方式
	*/
	public String getSortType() {
		return sortType;
	}
	
	/**
	 * 设置 排序方式
	 * @param sortType 排序方式
	 * @return 当前对象
	*/
	public PatentVO setSortType(String sortType) {
		this.sortType=sortType;
		return this;
	}
	
	/**
	 * 获得 数据来源<br>
	 * 前端指定不同的来源，后端可按来源执行不同的逻辑
	 * @return 数据来源
	*/
	public String getDataOrigin() {
		return dataOrigin;
	}
	
	/**
	 * 设置 数据来源
	 * @param dataOrigin 数据来源
	 * @return 当前对象
	*/
	public PatentVO setDataOrigin(String dataOrigin) {
		this.dataOrigin=dataOrigin;
		return this;
	}
	
	/**
	 * 获得 查询逻辑<br>
	 * 默认and，可指定 or 
	 * @return 查询逻辑
	*/
	public String getQueryLogic() {
		return queryLogic;
	}
	
	/**
	 * 设置 查询逻辑
	 * @param queryLogic 查询逻辑
	 * @return 当前对象
	*/
	public PatentVO setQueryLogic(String queryLogic) {
		this.queryLogic=queryLogic;
		return this;
	}
	
	/**
	 * 获得 请求动作<br>
	 * 前端指定不同的Action，后端可Action执行不同的逻辑
	 * @return 请求动作
	*/
	public String getRequestAction() {
		return requestAction;
	}
	
	/**
	 * 设置 请求动作
	 * @param requestAction 请求动作
	 * @return 当前对象
	*/
	public PatentVO setRequestAction(String requestAction) {
		this.requestAction=requestAction;
		return this;
	}
	
	/**
	 * 获得 主键清单<br>
	 * 用于接收批量主键参数
	 * @return 主键清单
	*/
	public List<Long> getIds() {
		return ids;
	}
	
	/**
	 * 设置 主键清单
	 * @param ids 主键清单
	 * @return 当前对象
	*/
	public PatentVO setIds(List<Long> ids) {
		this.ids=ids;
		return this;
	}
	
	/**
	 * 添加 主键清单
	 * @param id 主键清单
	 * @return 当前对象
	*/
	public PatentVO addId(Long... id) {
		if(this.ids==null) ids=new ArrayList<>();
		this.ids.addAll(Arrays.asList(id));
		return this;
	}
	@Transient
	private transient CompositeParameter $compositeParameter;
	/**
	 * 获得解析后的复合查询参数
	 */
	@Transient
	public CompositeParameter getCompositeParameter() {
		if($compositeParameter!=null) return  $compositeParameter;
		$compositeParameter=new CompositeParameter(this.getSearchValue(),BeanUtil.toMap(this));
		return  $compositeParameter;
	}

	/**
	 * 将自己转换成指定类型的PO
	 * @param poType  PO类型
	 * @return PatentVO , 转换好的 PatentVO 对象
	*/
	@Transient
	public <T extends Entity> T toPO(Class<T> poType) {
		return EntityContext.create(poType, this);
	}

	/**
	 * 将自己转换成任意指定类型
	 * @param pojoType  Pojo类型
	 * @return PatentVO , 转换好的 PoJo 对象
	*/
	@Transient
	public <T> T toPojo(Class<T> pojoType) {
		if(Entity.class.isAssignableFrom(pojoType)) {
			return (T)this.toPO((Class<Entity>)pojoType);
		}
		try {
			T pojo=pojoType.newInstance();
			EntityContext.copyProperties(pojo, this);
			return pojo;
		} catch (Exception e) {
			throw new RuntimeException(e);
		}
	}

	/**
	 * 克隆当前对象
	*/
	@Transient
	public PatentVO clone() {
		return duplicate(true);
	}

	/**
	 * 复制当前对象
	 * @param all 是否复制全部属性，当 false 时，仅复制来自数据表的属性
	*/
	@Transient
	public PatentVO duplicate(boolean all) {
		com.foxnicweb.app.domain.patent.meta.PatentVOMeta.$$proxy$$ inst = new com.foxnicweb.app.domain.patent.meta.PatentVOMeta.$$proxy$$();
		inst.setCreationTime(this.getCreationTime());
		inst.setApplicationNumber(this.getApplicationNumber());
		inst.setInventors(this.getInventors());
		inst.setApplicants(this.getApplicants());
		inst.setRemark(this.getRemark());
		inst.setTitle(this.getTitle());
		inst.setSales(this.getSales());
		inst.setSubtype(this.getSubtype());
		inst.setContact(this.getContact());
		inst.setIsSubexamRequest(this.getIsSubexamRequest());
		inst.setId(this.getId());
		inst.setFlow(this.getFlow());
		inst.setApplicationManner(this.getApplicationManner());
		inst.setArea(this.getArea());
		inst.setPatentAgent(this.getPatentAgent());
		inst.setProposalTitle(this.getProposalTitle());
		inst.setAgency(this.getAgency());
		inst.setLevel(this.getLevel());
		inst.setIpr(this.getIpr());
		inst.setProjectStage(this.getProjectStage());
		inst.setSerial(this.getSerial());
		inst.setService(this.getService());
		inst.setApplicationDate(this.getApplicationDate());
		inst.setCustomer(this.getCustomer());
		inst.setOrderSerial(this.getOrderSerial());
		inst.setStatus(this.getStatus());
		if(all) {
			inst.setSearchField(this.getSearchField());
			inst.setPageIndex(this.getPageIndex());
			inst.setSortType(this.getSortType());
			inst.setRequestAction(this.getRequestAction());
			inst.setFuzzyField(this.getFuzzyField());
			inst.setDirtyFields(this.getDirtyFields());
			inst.setSortField(this.getSortField());
			inst.setPageSize(this.getPageSize());
			inst.setDataOrigin(this.getDataOrigin());
			inst.setIds(this.getIds());
			inst.setQueryLogic(this.getQueryLogic());
			inst.setSearchValue(this.getSearchValue());
		}
		inst.clearModifies();
		return inst;
	}

	/**
	 * 克隆当前对象
	*/
	@Transient
	public PatentVO clone(boolean deep) {
		return EntityContext.clone(PatentVO.class,this,deep);
	}

	/**
	 * 将 Map 转换成 PatentVO
	 * @param patentMap 包含实体信息的 Map 对象
	 * @return PatentVO , 转换好的的 Patent 对象
	*/
	@Transient
	public static PatentVO createFrom(Map<String,Object> patentMap) {
		if(patentMap==null) return null;
		PatentVO vo = create();
		EntityContext.copyProperties(vo,patentMap);
		vo.clearModifies();
		return vo;
	}

	/**
	 * 将 Pojo 转换成 PatentVO
	 * @param pojo 包含实体信息的 Pojo 对象
	 * @return PatentVO , 转换好的的 Patent 对象
	*/
	@Transient
	public static PatentVO createFrom(Object pojo) {
		if(pojo==null) return null;
		PatentVO vo = create();
		EntityContext.copyProperties(vo,pojo);
		vo.clearModifies();
		return vo;
	}

	/**
	 * 创建一个 PatentVO，等同于 new
	 * @return PatentVO 对象
	*/
	@Transient
	public static PatentVO create() {
		return new com.foxnicweb.app.domain.patent.meta.PatentVOMeta.$$proxy$$();
	}

	/**
	 * 从 Map 读取
	 * @param map 记录数据
	 * @param cast 是否用 DataParser 进行类型转换
	 * @return  是否读取成功
	*/
	public boolean read(Map<String, Object> map,boolean cast) {
		if(map==null) return false;
		if(cast) {
			this.setCreationTime(DataParser.parse(Date.class, map.get(PatentVOMeta.CREATION_TIME)));
			this.setApplicationNumber(DataParser.parse(String.class, map.get(PatentVOMeta.APPLICATION_NUMBER)));
			this.setInventors(DataParser.parse(String.class, map.get(PatentVOMeta.INVENTORS)));
			this.setApplicants(DataParser.parse(String.class, map.get(PatentVOMeta.APPLICANTS)));
			this.setRemark(DataParser.parse(String.class, map.get(PatentVOMeta.REMARK)));
			this.setTitle(DataParser.parse(String.class, map.get(PatentVOMeta.TITLE)));
			this.setSales(DataParser.parse(String.class, map.get(PatentVOMeta.SALES)));
			this.setSubtype(DataParser.parse(String.class, map.get(PatentVOMeta.SUBTYPE)));
			this.setContact(DataParser.parse(String.class, map.get(PatentVOMeta.CONTACT)));
			this.setIsSubexamRequest(DataParser.parse(Integer.class, map.get(PatentVOMeta.IS_SUBEXAM_REQUEST)));
			this.setId(DataParser.parse(Long.class, map.get(PatentVOMeta.ID)));
			this.setFlow(DataParser.parse(String.class, map.get(PatentVOMeta.FLOW)));
			this.setApplicationManner(DataParser.parse(String.class, map.get(PatentVOMeta.APPLICATION_MANNER)));
			this.setArea(DataParser.parse(String.class, map.get(PatentVOMeta.AREA)));
			this.setPatentAgent(DataParser.parse(String.class, map.get(PatentVOMeta.PATENT_AGENT)));
			this.setProposalTitle(DataParser.parse(String.class, map.get(PatentVOMeta.PROPOSAL_TITLE)));
			this.setAgency(DataParser.parse(String.class, map.get(PatentVOMeta.AGENCY)));
			this.setLevel(DataParser.parse(String.class, map.get(PatentVOMeta.LEVEL)));
			this.setIpr(DataParser.parse(String.class, map.get(PatentVOMeta.IPR)));
			this.setProjectStage(DataParser.parse(String.class, map.get(PatentVOMeta.PROJECT_STAGE)));
			this.setSerial(DataParser.parse(String.class, map.get(PatentVOMeta.SERIAL)));
			this.setService(DataParser.parse(String.class, map.get(PatentVOMeta.SERVICE)));
			this.setApplicationDate(DataParser.parse(Date.class, map.get(PatentVOMeta.APPLICATION_DATE)));
			this.setCustomer(DataParser.parse(String.class, map.get(PatentVOMeta.CUSTOMER)));
			this.setOrderSerial(DataParser.parse(String.class, map.get(PatentVOMeta.ORDER_SERIAL)));
			this.setStatus(DataParser.parse(Integer.class, map.get(PatentVOMeta.STATUS)));
			// others
			this.setSearchField(DataParser.parse(String.class, map.get(PatentVOMeta.SEARCH_FIELD)));
			this.setPageIndex(DataParser.parse(Integer.class, map.get(PatentVOMeta.PAGE_INDEX)));
			this.setSortType(DataParser.parse(String.class, map.get(PatentVOMeta.SORT_TYPE)));
			this.setRequestAction(DataParser.parse(String.class, map.get(PatentVOMeta.REQUEST_ACTION)));
			this.setFuzzyField(DataParser.parse(String.class, map.get(PatentVOMeta.FUZZY_FIELD)));
			this.setSortField(DataParser.parse(String.class, map.get(PatentVOMeta.SORT_FIELD)));
			this.setPageSize(DataParser.parse(Integer.class, map.get(PatentVOMeta.PAGE_SIZE)));
			this.setDataOrigin(DataParser.parse(String.class, map.get(PatentVOMeta.DATA_ORIGIN)));
			this.setQueryLogic(DataParser.parse(String.class, map.get(PatentVOMeta.QUERY_LOGIC)));
			this.setSearchValue(DataParser.parse(String.class, map.get(PatentVOMeta.SEARCH_VALUE)));
			return true;
		} else {
			try {
				this.setCreationTime( (Date)map.get(PatentVOMeta.CREATION_TIME));
				this.setApplicationNumber( (String)map.get(PatentVOMeta.APPLICATION_NUMBER));
				this.setInventors( (String)map.get(PatentVOMeta.INVENTORS));
				this.setApplicants( (String)map.get(PatentVOMeta.APPLICANTS));
				this.setRemark( (String)map.get(PatentVOMeta.REMARK));
				this.setTitle( (String)map.get(PatentVOMeta.TITLE));
				this.setSales( (String)map.get(PatentVOMeta.SALES));
				this.setSubtype( (String)map.get(PatentVOMeta.SUBTYPE));
				this.setContact( (String)map.get(PatentVOMeta.CONTACT));
				this.setIsSubexamRequest( (Integer)map.get(PatentVOMeta.IS_SUBEXAM_REQUEST));
				this.setId( (Long)map.get(PatentVOMeta.ID));
				this.setFlow( (String)map.get(PatentVOMeta.FLOW));
				this.setApplicationManner( (String)map.get(PatentVOMeta.APPLICATION_MANNER));
				this.setArea( (String)map.get(PatentVOMeta.AREA));
				this.setPatentAgent( (String)map.get(PatentVOMeta.PATENT_AGENT));
				this.setProposalTitle( (String)map.get(PatentVOMeta.PROPOSAL_TITLE));
				this.setAgency( (String)map.get(PatentVOMeta.AGENCY));
				this.setLevel( (String)map.get(PatentVOMeta.LEVEL));
				this.setIpr( (String)map.get(PatentVOMeta.IPR));
				this.setProjectStage( (String)map.get(PatentVOMeta.PROJECT_STAGE));
				this.setSerial( (String)map.get(PatentVOMeta.SERIAL));
				this.setService( (String)map.get(PatentVOMeta.SERVICE));
				this.setApplicationDate( (Date)map.get(PatentVOMeta.APPLICATION_DATE));
				this.setCustomer( (String)map.get(PatentVOMeta.CUSTOMER));
				this.setOrderSerial( (String)map.get(PatentVOMeta.ORDER_SERIAL));
				this.setStatus( (Integer)map.get(PatentVOMeta.STATUS));
				// others
				this.setSearchField( (String)map.get(PatentVOMeta.SEARCH_FIELD));
				this.setPageIndex( (Integer)map.get(PatentVOMeta.PAGE_INDEX));
				this.setSortType( (String)map.get(PatentVOMeta.SORT_TYPE));
				this.setRequestAction( (String)map.get(PatentVOMeta.REQUEST_ACTION));
				this.setFuzzyField( (String)map.get(PatentVOMeta.FUZZY_FIELD));
				this.setSortField( (String)map.get(PatentVOMeta.SORT_FIELD));
				this.setPageSize( (Integer)map.get(PatentVOMeta.PAGE_SIZE));
				this.setDataOrigin( (String)map.get(PatentVOMeta.DATA_ORIGIN));
				this.setQueryLogic( (String)map.get(PatentVOMeta.QUERY_LOGIC));
				this.setSearchValue( (String)map.get(PatentVOMeta.SEARCH_VALUE));
				return true;
			} catch (Exception e) {
				return false;
			}
		}
	}

	/**
	 * 从 Map 读取
	 * @param r 记录数据
	 * @param cast 是否用 DataParser 进行类型转换
	 * @return  是否读取成功
	*/
	public boolean read(ExprRcd r,boolean cast) {
		if(r==null) return false;
		if(cast) {
			this.setCreationTime(DataParser.parse(Date.class, r.getValue(PatentVOMeta.CREATION_TIME)));
			this.setApplicationNumber(DataParser.parse(String.class, r.getValue(PatentVOMeta.APPLICATION_NUMBER)));
			this.setInventors(DataParser.parse(String.class, r.getValue(PatentVOMeta.INVENTORS)));
			this.setApplicants(DataParser.parse(String.class, r.getValue(PatentVOMeta.APPLICANTS)));
			this.setRemark(DataParser.parse(String.class, r.getValue(PatentVOMeta.REMARK)));
			this.setTitle(DataParser.parse(String.class, r.getValue(PatentVOMeta.TITLE)));
			this.setSales(DataParser.parse(String.class, r.getValue(PatentVOMeta.SALES)));
			this.setSubtype(DataParser.parse(String.class, r.getValue(PatentVOMeta.SUBTYPE)));
			this.setContact(DataParser.parse(String.class, r.getValue(PatentVOMeta.CONTACT)));
			this.setIsSubexamRequest(DataParser.parse(Integer.class, r.getValue(PatentVOMeta.IS_SUBEXAM_REQUEST)));
			this.setId(DataParser.parse(Long.class, r.getValue(PatentVOMeta.ID)));
			this.setFlow(DataParser.parse(String.class, r.getValue(PatentVOMeta.FLOW)));
			this.setApplicationManner(DataParser.parse(String.class, r.getValue(PatentVOMeta.APPLICATION_MANNER)));
			this.setArea(DataParser.parse(String.class, r.getValue(PatentVOMeta.AREA)));
			this.setPatentAgent(DataParser.parse(String.class, r.getValue(PatentVOMeta.PATENT_AGENT)));
			this.setProposalTitle(DataParser.parse(String.class, r.getValue(PatentVOMeta.PROPOSAL_TITLE)));
			this.setAgency(DataParser.parse(String.class, r.getValue(PatentVOMeta.AGENCY)));
			this.setLevel(DataParser.parse(String.class, r.getValue(PatentVOMeta.LEVEL)));
			this.setIpr(DataParser.parse(String.class, r.getValue(PatentVOMeta.IPR)));
			this.setProjectStage(DataParser.parse(String.class, r.getValue(PatentVOMeta.PROJECT_STAGE)));
			this.setSerial(DataParser.parse(String.class, r.getValue(PatentVOMeta.SERIAL)));
			this.setService(DataParser.parse(String.class, r.getValue(PatentVOMeta.SERVICE)));
			this.setApplicationDate(DataParser.parse(Date.class, r.getValue(PatentVOMeta.APPLICATION_DATE)));
			this.setCustomer(DataParser.parse(String.class, r.getValue(PatentVOMeta.CUSTOMER)));
			this.setOrderSerial(DataParser.parse(String.class, r.getValue(PatentVOMeta.ORDER_SERIAL)));
			this.setStatus(DataParser.parse(Integer.class, r.getValue(PatentVOMeta.STATUS)));
			return true;
		} else {
			try {
				this.setCreationTime( (Date)r.getValue(PatentVOMeta.CREATION_TIME));
				this.setApplicationNumber( (String)r.getValue(PatentVOMeta.APPLICATION_NUMBER));
				this.setInventors( (String)r.getValue(PatentVOMeta.INVENTORS));
				this.setApplicants( (String)r.getValue(PatentVOMeta.APPLICANTS));
				this.setRemark( (String)r.getValue(PatentVOMeta.REMARK));
				this.setTitle( (String)r.getValue(PatentVOMeta.TITLE));
				this.setSales( (String)r.getValue(PatentVOMeta.SALES));
				this.setSubtype( (String)r.getValue(PatentVOMeta.SUBTYPE));
				this.setContact( (String)r.getValue(PatentVOMeta.CONTACT));
				this.setIsSubexamRequest( (Integer)r.getValue(PatentVOMeta.IS_SUBEXAM_REQUEST));
				this.setId( (Long)r.getValue(PatentVOMeta.ID));
				this.setFlow( (String)r.getValue(PatentVOMeta.FLOW));
				this.setApplicationManner( (String)r.getValue(PatentVOMeta.APPLICATION_MANNER));
				this.setArea( (String)r.getValue(PatentVOMeta.AREA));
				this.setPatentAgent( (String)r.getValue(PatentVOMeta.PATENT_AGENT));
				this.setProposalTitle( (String)r.getValue(PatentVOMeta.PROPOSAL_TITLE));
				this.setAgency( (String)r.getValue(PatentVOMeta.AGENCY));
				this.setLevel( (String)r.getValue(PatentVOMeta.LEVEL));
				this.setIpr( (String)r.getValue(PatentVOMeta.IPR));
				this.setProjectStage( (String)r.getValue(PatentVOMeta.PROJECT_STAGE));
				this.setSerial( (String)r.getValue(PatentVOMeta.SERIAL));
				this.setService( (String)r.getValue(PatentVOMeta.SERVICE));
				this.setApplicationDate( (Date)r.getValue(PatentVOMeta.APPLICATION_DATE));
				this.setCustomer( (String)r.getValue(PatentVOMeta.CUSTOMER));
				this.setOrderSerial( (String)r.getValue(PatentVOMeta.ORDER_SERIAL));
				this.setStatus( (Integer)r.getValue(PatentVOMeta.STATUS));
				return true;
			} catch (Exception e) {
				return false;
			}
		}
	}
}